🗂️ Documentação do Banco de Dados
Este documento apresenta a modelagem do banco de dados para a plataforma, com foco em perfis de usuários (estudantes), empresas, vagas e relacionamentos adicionais, como candidaturas, experiências profissionais e atividades extracurriculares.
O banco de dados da plataforma Next Generation of Lawyers é estruturado para conectar jovens talentos jurídicos a empresas e oportunidades de carreira. Ele oferece suporte a perfis de estudantes e empresas, bem como seus relacionamentos com experiências profissionais, prêmios, atividades extracurriculares, vagas e candidaturas.
1. Estrutura do Banco de Dados
-
Usuários (Estudantes): Contas pessoais contendo dados básicos, acadêmicos e profissionais, incluindo interesses, objetivos de carreira, hobbies, biografia e campos opcionais como tipo de bolsa e ocupação atual. Estudantes também podem adicionar experiências, prêmios e atividades extracurriculares ao seu perfil.
-
Empresas: Perfis institucionais com campos como nome, e-mail, logo, missão, valores e descrição. As empresas podem criar e gerenciar vagas.
-
Vagas: Oportunidades de estágio, emprego ou desenvolvimento, com detalhes como requisitos, área jurídica, benefícios, remuneração e referência à empresa responsável.
-
Candidaturas: Registros das aplicações dos estudantes às vagas, incluindo status e data da candidatura.
-
Experiências: Histórico profissional do estudante, detalhando cargo, empresa, período e observações adicionais.
-
Prêmios: Conquistas acadêmicas ou profissionais, como bolsas de estudo, competições ou reconhecimentos institucionais.
-
Atividades Extracurriculares: Participações em organizações estudantis, projetos ou iniciativas sociais.
2. Diagrama ERD
Abaixo está o diagrama ERD utilizando dbdiagram.io:

🧑🎓 User
| Campo | Tipo | Descrição |
|---|---|---|
| id | Int | Identificador único |
| full_name | String | Nome completo |
| String | E-mail do usuário (único) | |
| password | String | Senha criptografada |
| next_year | Int? | Ano de participação no projeto NEXT |
| university | String? | Universidade atual |
| graduation_year | Int? | Ano de graduação |
| profile_photo | String? | URL da foto de perfil |
| linkedin_url | String? | URL do perfil no LinkedIn |
| interests | String[] | Áreas de interesse |
| career_goals | String? | Objetivos de carreira |
| hobbies | String[] | Hobbies pessoais |
| bio | String? | Biografia / resumo profissional |
| current_job | String? | Cargo atual (se houver) |
| scholarship_type | String? | Tipo de bolsa (integral/parcial) |
| created_at | DateTime | Data de criação |
| updated_at | DateTime | Última atualização |
Relacionamentos:
- 1:N com
Experience,Award,Extracurricular,Application.
🧪 Experience
| Campo | Tipo | Descrição |
|---|---|---|
| user_id | Int | Referência ao usuário |
| role | String | Cargo |
| company | String | Nome da empresa |
| start_date | DateTime | Data de início |
| end_date | DateTime | Data de término |
| description | String? | Descrição adicional |
| created_at | DateTime | Data de criação |
| updated_at | DateTime | Última atualização |
🏅 Award
| Campo | Tipo | Descrição |
|---|---|---|
| user_id | Int | Referência ao usuário |
| title | String | Nome do prêmio/bolsa |
| institution | String | Instituição concedente |
| year | Int | Ano da premiação |
| created_at | DateTime | Data de criação |
| updated_at | DateTime | Última atualização |
🎓 Extracurricular
| Campo | Tipo | Descrição |
|---|---|---|
| user_id | Int | Referência ao usuário |
| activity | String | Nome da atividade |
| organization | String | Organização responsável |
| year | Int | Ano de participação |
| created_at | DateTime | Data de criação |
| updated_at | DateTime | Última atualização |
🏢 Company
| Campo | Tipo | Descrição |
|---|---|---|
| id | Int | Identificador único |
| name | String | Nome da empresa |
| String | E-mail corporativo (único) | |
| password | String | Senha criptografada |
| description | String? | Descrição da empresa |
| logo | String? | URL do logo |
| mission | String? | Missão da empresa |
| values | String? | Valores da empresa |
| created_at | DateTime | Data de criação |
| updated_at | DateTime | Última atualização |
Relacionamentos:
- 1:N com
Job.
📄 Job
| Campo | Tipo | Descrição |
|---|---|---|
| id | Int | Identificador único |
| title | String | Título da vaga |
| description | String | Descrição da vaga |
| requirements | String | Requisitos para candidatura |
| area | String | Área jurídica |
| salary | String? | Faixa salarial |
| benefits | String? | Benefícios oferecidos |
| location | String? | Localização da vaga |
| company_id | Int | Referência à empresa |
| created_at | DateTime | Data de criação |
| updated_at | DateTime | Última atualização |
Relacionamentos:
- 1:N com
Application.
📬 Application
| Campo | Tipo | Descrição |
|---|---|---|
| id | Int | Identificador único |
| user_id | Int | Referência ao estudante |
| job_id | Int | Referência à vaga |
| status | String | Status da candidatura ("Applied", "Interview", "Offer") |
| applied_at | DateTime | Data da candidatura |
🔗 Relacionamentos
User 1 — N Experience
User 1 — N Award
User 1 — N Extracurricular
User 1 — N Application
Company 1 — N Job
Job 1 — N Application
☁️ Hospedagem do Banco de Dados — AWS RDS (PostgreSQL)
📌 Visão Geral
O banco de dados da plataforma Next Generation of Lawyers está hospedado na Amazon Web Services (AWS) utilizando o serviço RDS (Relational Database Service) com PostgreSQL 15. A hospedagem na AWS oferece alta disponibilidade, backups automáticos, escalabilidade e segurança robusta.
⚙️ Configuração da Instância
| Parâmetro | Valor |
|---|---|
| Nome da instância | next-db |
| Região | us-east-1 (Norte da Virgínia) |
| Versão do PostgreSQL | 15 |
| Conectividade pública | Ativada (com regras no Security Group) |
| Endpoint | database-1.cfssllf0qlz6.us-east-1.rds.amazonaws.com |
| Porta | 5432 |
| Backup automático | Ativado |
| Usuário principal | postgres |
| Banco inicial | next_db |
🔐 Acesso Seguro
✅ Configure o Security Group da VPC para permitir conexões na porta 5432 a partir de:
- Seu endereço IP (para desenvolvimento local)
- Seu provedor de hospedagem do backend (ex.: Vercel, Railway, Render)
🔗 URL de Conexão
DATABASE_URL="postgresql://postgres:<senha>@database-1.cfssllf0qlz6.us-east-1.rds.amazonaws.com:5432/next_db"
🛠️ Migrações Prisma
Após configurar a conexão, execute:
npx prisma migrate resolve --applied "*"
npx prisma migrate deploy
✅ Conclusão
A arquitetura e a hospedagem do banco de dados garantem segurança, confiabilidade, escalabilidade e fácil integração com os serviços da plataforma Next Gen Lawyers.